/* -*- Mode: c; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
/*
  RefObject (http://code.google.com/p/refobject/)
  Copyright (C) 2010-2011 MIURA Shirow (sharow)
*/

#ifndef INCLUDED_REFDICT_H
#define INCLUDED_REFDICT_H


#include <RefObject/RefObject.h>

RefTypeObject ** RefDict_GetTypeObject(void);
int RefDict_IsValid(RefObject *aRefObject);
RefObject *RefDict_Create(void);
RefObject *RefDict_CreateWithAllocator(RefObject *aRefAllocator);
int RefDict_SetItem(RefObject *aRefDict, RefObject *aRefKeyString, RefObject *aRefValue);
int RefDict_SetItemCString(RefObject *aRefDict, unsigned char *aKeyCString, int aLength, RefObject *aRefValue);
RefObject *RefDict_GetItem(RefObject *aRefDict, RefObject *aRefKeyString);
RefObject *RefDict_GetItemCString(RefObject *aRefDict, unsigned char *aKeyCString, int aLength);
RefObject *RefDict_TakeOutItem(RefObject *aRefDict, RefObject *aRefKeyString);
RefObject *RefDict_TakeOutItemCString(RefObject *aRefDict, unsigned char *aKeyCString, int aLength);
int RefDict_DeleteItem(RefObject *aRefDict, RefObject *aRefKeyString);
int RefDict_DeleteItemCString(RefObject *aRefDict, unsigned char *aKeyCString, int aLength);
int RefDict_Contains(RefObject *aRefDict, RefObject *aRefKeyString);
int RefDict_ContainsCString(RefObject *aRefDict, unsigned char *aKeyCString, int aLength);
int RefDict_GetSize(RefObject *aRefDict);


#endif
